package com.xd.core.business.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xd.core.business.entity.IncomingCommonLoan;
import com.xd.core.business.entity.IncomingUrgentContact;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 进件信息表
 * </p>
 *
 * @author ZX
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="IncomingInfo对象", description="进件信息表")
public class IncomingInfoDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "进件ID")
    private Integer incomingId;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "身份证")
    private String idCard;

    @ApiModelProperty(value = "身份证正面地址")
    private String idCardFrontUrl;

    @ApiModelProperty(value = "身份证反面地址")
    private String idCardReverseUrl;

    @ApiModelProperty(value = "手机号")
    private String phone;

    @ApiModelProperty(value = "所在省份")
    private String province;

    @ApiModelProperty(value = "所在城市")
    private String city;

    @ApiModelProperty(value = "现住地址")
    private String address;

    @ApiModelProperty(value = "工作行业")
    private String industry;

    @ApiModelProperty(value = "工作时长")
    private String duration;

    @ApiModelProperty(value = "职务")
    private String office;

    @ApiModelProperty(value = "税后收入")
    private String afterTaxIncome;

    @ApiModelProperty(value = "学历")
    private String degree;

    @ApiModelProperty(value = "婚姻状况")
    private String marriage;

    @ApiModelProperty(value = "期望金额")
    private String expectedAmount;

    @ApiModelProperty(value = "附件")
    private String annex;

    @ApiModelProperty(value = "公积金缴存基数")
    private BigDecimal fundPayAmount;

    @ApiModelProperty(value = "公积金缴存单位")
    private String fundPayUnit;

    @ApiModelProperty(value = "公积金证明")
    private String fundProve;

    @ApiModelProperty(value = "社保缴存基数")
    private BigDecimal socialPayAmount;

    @ApiModelProperty(value = "社保缴存单位")
    private String socialPayUnit;

    @ApiModelProperty(value = "社保证明")
    private String socialProve;

    @ApiModelProperty(value = "担保人姓名")
    private String guarantorName;

    @ApiModelProperty(value = "担保人手机号")
    private String guarantorPhone;

    @ApiModelProperty(value = "担保人关系")
    private String guarantorRelation;

    @ApiModelProperty(value = "担保人身份证")
    private String guarantorIdCard;

    @ApiModelProperty(value = "担保人身份证正面")
    private String guarantorIdCardFront;

    @ApiModelProperty(value = "担保人身份证反面")
    private String guarantorIdCardReverse;

    @ApiModelProperty(value = "担保人邮箱")
    private String guarantorMail;

    @ApiModelProperty(value = "担保人地址")
    private String guarantorAddress;

    @ApiModelProperty(value = "有无担保人")
    private String guarantorYes;

    @ApiModelProperty(value = "有无共同借款人")
    private String commonLoanYes;

    @ApiModelProperty(value = "房产状态")
    private String houseStatus;

    @ApiModelProperty(value = "房产类型")
    private String houseType;

    @ApiModelProperty(value = "房屋所有人")
    private String houseOwners;

    @ApiModelProperty(value = "不动产证书编号")
    private String houseNo;

    @ApiModelProperty(value = "房屋使用现状")
    private String houseUseType;

    @ApiModelProperty(value = "房屋地址")
    private String houseAddress;

    @ApiModelProperty(value = "房屋建筑面积")
    private BigDecimal houseBuildingArea;

    @ApiModelProperty(value = "房屋土地使用权面积")
    private BigDecimal houseLandArea;

    @ApiModelProperty(value = "房屋共有形式")
    private String houseCommunalForm;

    @ApiModelProperty(value = "房龄")
    private String houseAge;

    @ApiModelProperty(value = "房屋截至日期")
    private Date houseDeadTime;

    @ApiModelProperty(value = "房屋估价")
    private BigDecimal houseValuation;

    @ApiModelProperty(value = "房屋证书")
    private String houseCert;

    @ApiModelProperty(value = "争议方式(1--公证,2--仲裁,3--诉讼)")
    private String controversy;

    @ApiModelProperty(value = "车辆类型")
    private String carType;

    @ApiModelProperty(value = "车辆所有人")
    private String carOwners;

    @ApiModelProperty(value = "担保债券金额")
    private BigDecimal guaAmount;

    @ApiModelProperty(value = "车辆证书(行驶证)")
    private String carCert;

    @ApiModelProperty(value = "使用性质")
    private String carUseType;

    @ApiModelProperty(value = "车辆产权所有证")
    private String carSurtaxCert;

    @ApiModelProperty(value = "车牌号")
    private String carNo;

    @ApiModelProperty(value = "品牌型号")
    private String carBrand;

    @ApiModelProperty(value = "发动机号码")
    private String carEngineNo;

    @ApiModelProperty(value = "车辆识别码")
    private String carCode;

    @ApiModelProperty(value = "车辆估价")
    private BigDecimal carValuation;

    @ApiModelProperty(value = "车或房(0--车,1--房.2--都有,3--没有)")
    private String carOrHouse;

    @ApiModelProperty(value = "进件人ID")
    private Integer incomingUserId;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "共同借款人")
    private List<IncomingCommonLoan> incomingCommonLoans;

    @ApiModelProperty(value = "紧急联系人")
    private List<IncomingUrgentContact> incomingUrgentContacts;

    @ApiModelProperty(value = "存为草稿(0--否,1--是)")
    private String draftStatus;

    @ApiModelProperty(value = "进件机构id")
    private Integer incomingCompanyId;

    @ApiModelProperty(value = "所属资方ID")
    private Integer companyId;

    @ApiModelProperty(value = "城市坐标")
    private String citySqes;

    @ApiModelProperty(value = "归属资方员工ID")
    private Integer manageUserId;

    @ApiModelProperty(value = "产品id")
    private Integer productId;

    @ApiModelProperty(value = "订单状态(0--启用,1--停用)")
    private String isEnable;

    @ApiModelProperty(value = "主借人城市坐标")
    private String liveCitySqes;

    @ApiModelProperty(value = "仲裁所在城市")
    private String cityRemark;

    @ApiModelProperty(value = "有无紧急联系人(0--否,1--是)")
    private String isIncomingUrgentContacts;

    @ApiModelProperty(value = "经营贷是否需要抵押（0--否，1--是）")
    private String isJydMortgage;

    @ApiModelProperty(value = "主体类型（0--个人，1--企业）")
    private String principalType;

    @ApiModelProperty(value = "借款主体身份 (0-法定代表人 ,1-股东 ,2-挂靠人)")
    private String borrowerEntityType;

    @ApiModelProperty(value = "签约方式 （0-法人签约， 1-经办人签约）")
    private String signingMethod;

    @ApiModelProperty(value = "投保公司id")
    private Integer insuranceCompanyId;

    @ApiModelProperty(value = "营业执照")
    private String license;

    @ApiModelProperty(value = "公司名称")
    private String companyName;

    @ApiModelProperty(value = "统一社会信用代码")
    private String unifiedSocialCreditCode;

    @ApiModelProperty(value = "公司成立日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date companyStartTime;

    @ApiModelProperty(value = "法人姓名")
    private String legalEntityName;

    @ApiModelProperty(value = "企业详细地址")
    private String companyAddress;

    @ApiModelProperty(value = "企业所在地")
    private String companySqes;

    @ApiModelProperty(value = "法人身份证正面")
    private String legalCardFrontUrl;

    @ApiModelProperty(value = "法人身份证反面")
    private String legalCardReverseUrl;

    @ApiModelProperty(value = "法人证件号")
    private String legalIdCard;

    @ApiModelProperty(value = "法人手机号")
    private String legalPhone;

    @ApiModelProperty(value = "付款通道(1-通道一，2-通道二)")
    private String payPass;

    @ApiModelProperty(value = "企业所在城市")
    private String companyCity;

    @ApiModelProperty(value = "法人邮箱")
    private String legalEmail;
}
